Contact centers, such as Automatic Call Distribution or ACD systems, are employed by many enterprises to service customer contacts. A typical contact center includes a switch and/or server to receive and route incoming packet-switched and/or circuit-switched contacts and one or more resources, such as human agents and automated resources (e.g., Interactive Voice Response (IVR) units), to service the incoming contacts. As used herein, a “call” or “contact” refers to any mode or type of contact between at least two entities, including without limitation voice calls, VoIP, text-chat, instant messaging, e-mail, fax, electronic documents, webforms, voice messages, and video calls, to name but a few. Contact centers distribute contacts, whether inbound or outbound, for servicing to any suitable resource according to predefined criteria. Normally in present-day ACDs when the ACD system's controller detects that an agent has become available to handle a contact, the controller identifies all predefined contact-handling skills of the agent (usually in some order of priority) and delivers to the agent the highest-priority oldest contact that matches the agent's highest-priority skill. Agents with a higher skill are normally preferred over agents with lower skill levels when assigning an agent to a contact. When agents have multiple skills, the controller is more likely to select a contact for which the agent has a high skill level over a contact for which the agent has a lesser skill level. Generally, the only condition that results in a contact not being delivered to an available agent is that there are no contacts waiting to be handled.
Contact-distribution algorithms ultimately seek to maximize contact center performance and profitability. That may involve minimizing cost, maximizing contact throughput, and/or maximizing revenue, among others. Skills-based routing, which allows each agent to be slotted into a number of agent groups based on the agent's skill types and levels, is an attempt to maximize contact center performance and profitability. Skills-based routing systems have been further modified by introducing, as criterion in assigning work items to available agents, the service level associated with each work item.
Traditional contact centers have struggled to maintain and exceed customer service expectations, not only for wait time but also for responding effectively and efficiently to customer questions. To address wait times, contact centers have been “staffed up” by hiring additional resources at the service centers or have implemented reactive and manual processes that would involve having non-traditional resources (back office workers) alerted using manual processes to have them reactively “log in” to the resource pool. It is increasingly difficult to staff a correct number of resources to serve increasingly complex customer requests. Customers still continue to receive sub-optimal resources, busy signals, or excessive delays on IP based interactions over the web. Recently, additional manual approaches appearing in new form factors like instant messaging have been used to try and address this issue.
The fundamental problem of traditional contact centers is that resource pooling of agents and the notion of dedicated or designated call center agents is not always the most effective and efficient way to service incoming calls. Thus, it is often the case that contact centers fail to locate, let alone connect with customers, the optimal enterprise resource at any one instant. Simply put, contact centers fail to aggregate the totality of resources and skills available outside of the service center in a structured and dynamic manner.